package Hash;

import java.util.HashMap;

/**
 * P3162 优质数对的总数II
 * */
public class P3164 {
}
/**
 * 暴力存因子（利用哈希表存）
 * */
class P3164Test01{
    public long numberOfPairs(int[] nums1, int[] nums2, int k) {
        HashMap<Integer,Integer> map=new HashMap<>();
        for(int num:nums1){
            //如果不能整除就跳过
            if(num%k!=0)
                continue;
//            map.merge(num, 1,Integer::sum);
            num/=k;
            //取因子操作
            for(int i=1;i*i<=num;i++){
                if(num%i>0)
                    continue;
                map.merge(i,1,Integer::sum);
                if(i*i<num)
                    map.merge(num/i, 1, Integer::sum);
            }


        }
        long sum=0;
        for (int num2:nums2){
            sum+=map.getOrDefault(num2, 0);
        }
        return sum;
    }
}